package com.itheima.reggie.controller;

import com.itheima.reggie.common.ResultInfo;
import com.itheima.reggie.domain.Address;
import com.itheima.reggie.service.AddressService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

@RestController
public class AddressController {

    @Autowired
    private AddressService addressService;

    // 查看地址簿
    @GetMapping("/address/list")
    public ResultInfo findList(){ //不需要接受参数，get请求
        // 调用方法
      List<Address>  address= addressService.findList();
       // 返回结果
        return ResultInfo.success(address);
    }

    //新增地址
    @PostMapping("/address")
    public ResultInfo save(@RequestBody Address address){ //接收参数
        //调用方法
         addressService.save(address);
         // 返回结果
        return ResultInfo.success();
    }
    //修改默认地址
    @PutMapping("/address/default")
    public ResultInfo update(@RequestBody Map<String,Long> param){ //接收参数
        Long id = param.get("id");
        //调用方法
        addressService.update(id);
        // 返回结果
        return ResultInfo.success();
    }
    // 点击去结算时
    @GetMapping("/address/default")
    public ResultInfo jiesuan(){
        // 调用方法
       Address address= addressService.jiesuan();
       // 返回结果
       return ResultInfo.success(address);
    }

    // 修改地址回显
    @GetMapping("/address/{id}")
    public ResultInfo huixian(@PathVariable Long id){ //路径传参 @PathVariable
        //调用方法
      Address address=  addressService.huixian(id);
      // 返回结果
        return ResultInfo.success(address);
    }

     //修改地址
    @PutMapping("/address")
    public ResultInfo update(@RequestBody Address address){// 接收参数
        // 调用方法
        addressService.xiugai(address);
         //返回结果
        return ResultInfo.success();
    }

    // 删除地址
    @DeleteMapping("/address")
    public ResultInfo delete(Long ids){//  接收参数
        //  调用方法
        addressService.delete(ids);
         //返回结果
        return ResultInfo.success();
    }


}
